package cn.erbudev.model;

import java.util.List;

public abstract class DrawEntity implements DrawElement {
    final static int LINE = 1;
    final static int ARC = 2;
    private int ID;
    Point startPoint;
    Point endPoint;

    int getID() {
        return ID;
    }

    void setID(int ID) {
        this.ID = ID;
    }

    public Point getStartPoint() {
        return startPoint;
    }

    public Point getEndPoint() {
        return endPoint;
    }

    public abstract List<Point> getIntersection(DrawEntity other);

    public abstract List<Point> getChildCrossPoints(DrawEntity other, double d);

    public abstract DrawEntity reduce(Point point, boolean flag);

    public abstract double getEntityLength();

    public abstract int getType();
}
